From a7d044f9e6c6d43cd497a2c47c05b2a2aa7b41ef Mon Sep 17 00:00:00 2001 From: Claudio Cambra Date: Mon, 20 Jan 2025 11:55:33 +0800 Subject: [PATCH] Enforce chunk size provided by server capabilities Signed-off-by: Claudio Cambra --- src/gui/folder.cpp | 21 +++++++++++---------- 1 file changed, 11 insertions(+), 10 deletions(-) diff --git a/src/gui/folder.cpp b/src/gui/folder.cpp index 7e30d02f3..ee028cdd2 100644 --- a/src/gui/folder.cpp +++ b/src/gui/folder.cpp @@ -1154,16 +1154,17 @@ SyncOptions Folder::initializeSyncOptions() const opt._parallelNetworkJobs = account->isHttp2Supported() ? 20 : 6; // Chunk V2: Size of chunks must be between 5MB and 5GB, except for the last chunk which can be smaller - const auto capsMaxChunkSize = account->capabilities().maxChunkSize(); - const auto validCapsChunkSize = capsMaxChunkSize <= 0; - const auto maxChunkSize = validCapsChunkSize ? capsMaxChunkSize : cfgFile.maxChunkSize(); - const auto preferredChunkSize = validCapsChunkSize ? capsMaxChunkSize : cfgFile.chunkSize(); - - opt.setMinChunkSize(cfgFile.minChunkSize()); - opt.setMaxChunkSize(maxChunkSize); - opt._initialChunkSize = ::qBound(opt.minChunkSize(), preferredChunkSize, opt.maxChunkSize()); - opt._targetChunkUploadDuration = cfgFile.targetChunkUploadDuration(); - + if (const auto capsMaxChunkSize = account->capabilities().maxChunkSize(); capsMaxChunkSize <= 0) { + opt.setMinChunkSize(capsMaxChunkSize); + opt.setMaxChunkSize(capsMaxChunkSize); + opt._initialChunkSize = capsMaxChunkSize); + } else { + const auto cfgMinChunkSize = cfgFile.minChunkSize(); + const auto cfgMaxChunkSize = cfgFile.maxChunkSize(); + opt.setMinChunkSize(cfgMinChunkSize); + opt.setMaxChunkSize(cfgMaxChunkSize); + opt._initialChunkSize = ::qBound(cfgMinChunkSize, cfgFile.chunkSize(), cfgMaxChunkSize); + } opt.fillFromEnvironmentVariables(); opt.verifyChunkSizes(); -- 2.30.2